package uy.edu.ord.dc.obligatorio.entidades;

import java.math.BigDecimal;
import java.util.Date;
import uy.edu.ord.dc.obligatorio.enumerados.TipoCuenta;

public class Cuenta {

    private long id;
    private long numero;
    private BigDecimal saldoEfectivo;
    private BigDecimal saldoContable;
    private Date fechaCreacion;
    private Cliente titular;
    private Moneda moneda;
    private TipoCuenta tipoCuenta;

    
    
    
    /* --------------- Setters & Getters --------------- */
    public Date getFechaCreacion() {
        return fechaCreacion;
    }

    public void setFechaCreacion(Date fechaCreacion) {
        this.fechaCreacion = fechaCreacion;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Moneda getMoneda() {
        return moneda;
    }

    public void setMoneda(Moneda moneda) {
        this.moneda = moneda;
    }

    public long getNumero() {
        return numero;
    }

    public void setNumero(long numero) {
        this.numero = numero;
    }

    public BigDecimal getSaldoContable() {
        return saldoContable;
    }

    public void setSaldoContable(BigDecimal saldoContable) {
        this.saldoContable = saldoContable;
    }

    public BigDecimal getSaldoEfectivo() {
        return saldoEfectivo;
    }

    public void setSaldoEfectivo(BigDecimal saldoEfectivo) {
        this.saldoEfectivo = saldoEfectivo;
    }

    public TipoCuenta getTipoCuenta() {
        return tipoCuenta;
    }

    public void setTipoCuenta(TipoCuenta tipoCuenta) {
        this.tipoCuenta = tipoCuenta;
    }

    public Cliente getTitular() {
        return titular;
    }

    public void setTitular(Cliente titular) {
        this.titular = titular;
    }

    
    
    /* --------------- Overrides --------------- */
    
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Cuenta other = (Cuenta) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 47 * hash + (int) (this.id ^ (this.id >>> 32));
        return hash;
    }
   
}
